package infb.dao;

import infb.modelo.Administradores;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;


@Stateless(mappedName="AdministradoresEJB")
public class AdministradoresBean implements AdministradoresInterfaz{
    @PersistenceContext
    private EntityManager em;

    public void create(Administradores administradores) {
        em.persist(administradores);
    }

    public void edit(Administradores administradores) {
        em.merge(administradores);
    }

    public void remove(Administradores administradores) {
        em.remove(em.merge(administradores));
    }

    public Administradores find(Object id) {
        return em.find(Administradores.class, id);
    }

    public List<Administradores> findAll() {
        return em.createQuery("select object(o) from Administradores as o").getResultList();
    }

    /*
     * Metodo para comprobar si un administrador esta correctamente registrado en el sistema
     * Utilizado por el mecanismo de autenticacion
     */
    public Administradores estaAutenticado(String dni, String password) {
        List resultados = em.createQuery("SELECT a FROM Administradores a where a.dni=?1 and a.password=?2")
        .setParameter(1, dni)
        .setParameter(2, password)
        .getResultList();

        return (Administradores) (resultados.isEmpty() ? null : resultados.get(0));
    }

}
